package ganga.custodian.human;

import java.util.LinkedList;

/**
 * Модель человека
 * @author Apocrypha
 */
public class HumanModel implements IHeartRate{
	
	private LinkedList <Integer> events;
	private int HeartRateAveragingCapacity = 4 * 100; //4 минуты, 100 ударов в минуту
	public PermissibleRange heartRatePermissibleRange;
	public HumanModel(){
		events = new LinkedList<Integer>();
		heartRatePermissibleRange = new PermissibleRange(40, 120);
	}
	/**
	 * @return Время, в милисекундах за которое произошли все события
	 */
	private int accumulate(){
		int result = 0;
		for(int i: events){
			result += i;
		}
		return result;
	}
	//implements IHeartRate
	@Override
	public double GetHeartRate() {
		double frq = ((double)events.size())/accumulate();
		return frq * 1000 * 60;//1 сек = 1000 мс; 60 сек = 1 мин
	}

	@Override
	public void AddRRInterval(int duration) {
		if (events.size() >= HeartRateAveragingCapacity)
			events.removeLast();
		
		events.addFirst(duration);
	}

	@Override
	public boolean IsStateNormal(byte state) {
		return true;
	}
}
